package com.example.game;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

/**
 * 主界面，作为登录界面
 */
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn_login;  // 登录按钮
    private EditText et_uname, et_upass; // 用户名与密码控件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 检查是否从注册页面返回，并填充用户名和密码
        if (savedInstanceState != null) {
            String uname = savedInstanceState.getString("uname");
            String upass = savedInstanceState.getString("upass");
            if (uname != null && upass != null) {
                et_uname.setText(uname);
                et_upass.setText(upass);
            }
        }
        // 设置一个标志位，表示 MainActivity 已经启动
        isMainActivityLaunched = true;
        initView(); // 初始化控件
        initData(); // 加载初始化数据


    }

    // 添加一个方法来结束 MainActivity
    public void finishActivity() {
        if (isMainActivityLaunched) {
            finish();
            isMainActivityLaunched = false;
        }
    }

    private boolean isMainActivityLaunched = false;


    // 初始化界面数据
    private void initData() {
        Userinfo user = SPDataUtil.getUserinfo(this);
        if (user != null && !TextUtils.isEmpty(user.getUname())) {
            et_uname.setText(user.getUname());
            et_upass.setText(user.getUpass());
        }
    }

    /**
     * 初始化控件
     */
    private void initView() {
        btn_login = findViewById(R.id.btn_login);
        et_uname = findViewById(R.id.et_uname);
        et_upass = findViewById(R.id.et_upass);
        View btn_register = findViewById(R.id.btn_register); // 初始化注册按钮

        // 为登录按钮添加点击事件
        btn_login.setOnClickListener(this);

        // 为注册按钮添加点击事件
        btn_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 启动 RegisterActivity
                Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
                startActivity(intent);
            }
        });
    }

    // 点击事件处理
    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_login) { // 如果是登录按钮被点击
            chkAndSaveData(); // 执行登录检查和保存数据的操作
        }
    }

    /**
     * 检查登录数据并进行保存
     */
    private void chkAndSaveData() {
        String uname = et_uname.getText().toString().trim();
        String upass = et_upass.getText().toString().trim();

        if (TextUtils.isEmpty(uname)) {
            showMsg("请输入用户名。");
        } else if (TextUtils.isEmpty(upass)) {
            showMsg("请输入密码。");
        } else {
            // 这里添加你的验证逻辑，例如检查 uname 和 upass 是否匹配预期的用户名和密码
            if (isValidUser(uname, upass)) { // 假设这是你的验证方法
                boolean flag = SPDataUtil.saveUserInfo(this, uname, upass);
                if (flag) {
                    showMsg("登录成功");
                    // 确保使用 GameList 活动的类名
                    Intent intent = new Intent(this, GameList.class);
                    startActivity(intent); // 启动 GameList 活动
                    finish(); // 结束当前的 MainActivity，如果您希望这样的话
                } else {
                    showMsg("保存数据失败，请重试。");
                }
            } else {
                showMsg("用户名或密码错误。");
            }
        }
    }

    // 显示信息的方法
    private void showMsg(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }

    // 验证用户名和密码是否有效的方法（示例）
    //登录逻辑
    private boolean isValidUser(String uname, String upass) {
        Userinfo user = SPDataUtil.getUserinfo(this);
        return user != null && uname.equals(user.getUname()) && upass.equals(user.getUpass());
    }
}